Method for generating images from text

ABSTRACT

A computer assisted method for generating an image from a text character includes the steps of reading the text character from a machine readable storage device and pattern mapping the text character to a pattern of multiple-valued text characters, and rendering the image.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to and is a continuation fromU.S. patent application Ser. No. 12/946,486, filed on Nov. 15, 2010,which will issue as U.S. Pat. No. 8,827,168 on Sep. 9, 2014, hereinincorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

The present invention relates generally to a method for generating animage from a string of text characters. More particularly, the presentinvention relates to a method for generating bitmap images on demandwithin a database server using only strings of text characters withinstored procedures.

It has been said that a picture is worth a thousand words and perhapsthis has never been more true than today. The explosion of informationstored on modern computer systems and transferred across the intern& hasfed the need for larger and more complex information storage systems.Powerful database servers have been developed not only to storeinformation, but to allow a user to sort, categorize, manipulate,re-format, share, and interpret the information in useful ways. Oneknown use of database servers is, for example, the tracking of a varietyof attributes of a package such as location, size, weight, contents,value, ownership, delivery address, scheduled delivery date, etc. Inthis application, a field within the database server representing thepackage may be associated with a field within the database server foreach of the noted attributes. Any one of these attribute fields maycontain a small or a large quantity of information that requiresperiodic updating from the field, which in this example, is the locationof the package.

Barcodes have come into use as an efficient way of transferring the sortof large quantities of information stored in a database server such asmay be involved in the example of a package noted above. Other examplesof information stored in database servers may include tracking of testsamples in a laboratory, evidence in an investigation, or a fleet ofvehicles, among others. Typically, a barcode is generated that includesenough relevant information to identify an item and may be placed on theitem, either by direct printing, an adhesive printed label, or othermeans. Subsequently, a scanner can read the barcode and transmit therelevant information to a user operating a database server for updatingof one or more attributes of the item or for other purposes.

There are several methods currently used for generating barcodes fromstrings of text within a database server for the purpose of printing thebarcode. All of the existing methods involve the use of software and/orcomputations executed outside of the database server. For example, someprinters include software associated with the printer that is able toconvert text read from a database server into a barcode format whileprinting. Alternatively, workstations can include software that canconvert text read from a database server into a barcode image andsubsequently transmit the barcode image to a printer. Some workstationsinclude special fonts or image libraries for the conversion of text froma server database to a barcode image. In some cases upon data entry at aworkstation, software on the workstation can convert text to a barcodeimage using one of the methods noted above and store the image in adatabase server.

The existing methods for generating barcodes from text in a databaseserver suffer from several shortcomings. All of the existing methodsrequire additional software and/or hardware in addition to the databaseserver to generate a barcode for printing. Further, all of the existingmethods require that the barcode image generated from a workstationduring data entry be stored along with the text data. Storing thegenerated barcodes unnecessarily is a waste of resources, and the fontsand image libraries often used in generating the barcodes can beunwieldy and execute slowly, thus wasting time.

There exists a need for a method of generating bitmap images, forexample, barcodes, from strings of text within a database server withoutrequiring image libraries or external software and/or hardware. Such amethod benefits from operating on the fly on strings of text within adatabase without a requirement that the bitmap images be stored withinthe database. Such a method also benefits from the ability to generate abitmap having any desired orientation, and in the case of generating abarcode, benefits from the ability to utilize any barcode encodingscheme. Further, conventional methods including image libraries maycontain image characters that utilize a byte of data per character,whereas a method utilizing bitmap images further benefits from saving ofmemory space in temporary storage and manipulation of bitmap imagescompared to the conventional methods.

SUMMARY OF THE INVENTION

In one aspect of the present invention, a computer assisted method forgenerating an image from a text character is presented. The methodincludes the steps of reading the text character from a machine readablestorage device, pattern mapping the text character to a pattern ofmultiple-valued text characters, and rendering the image.

In another aspect of the present invention, a computer assisted methodfor generating an image from a string of text characters is presented.The method includes the steps of reading the string from a machinereadable storage device and pattern mapping each text character to apattern of multiple-valued text characters, and rendering the image.

In a further aspect of the present invention, a computer assisted methodfor generating an image from a string of text characters or a set oftext characters is presented. The method includes the steps of creatinga pattern mapping of each of the set of text characters to a pattern ofmultiple-valued text characters, reading the string of text charactersfrom a machine readable storage device and applying the pattern mappingto the string to produce a composite pattern of multiple-valued textcharacters, and rendering the image.

In yet another aspect of the present invention, a computer assistedmethod for generating an image from a string of text characters ispresented. The method includes the steps of assigning values ofmultiple-valued text characters to bits, reading the string of textcharacters from a machine readable storage device, and pattern mappingeach text character to a pattern of multiple-valued text characters, andrendering the image.

In yet a further aspect of the present invention, a computer assistedmethod for generating an image from a string of text characters ispresented. The method includes the steps of pattern mapping each of theset of text characters to a pattern of multiple-valued text characters,assigning a value of each multiple-valued text character to at least onebit, and reading the string of text characters from a machine readablestorage device. The method further includes the steps of applying thepattern mapping to the string to produce a composite pattern ofmultiple-valued text characters, and rendering the image.

In yet a further aspect of the present invention, a computer assistedmethod for generating an image from a string of text characters on adatabase server is presented. The method includes the steps of executinga first process within the database server for reading the string oftext characters from a storage location within the database server andexecuting a second process on the database server for pattern mappingthe string of text characters to a pattern of multiple-valued textcharacters. The method further includes the steps of executing a thirdprocess on the database server for rendering the image.

The foregoing summary, as well as the following detailed description ofthe preferred embodiments, will be understood when read in conjunctionwith the appended drawings.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates the use of a barcode font by the PRIOR ART.

FIG. 2 illustrates a database entry lacking special font characters.

FIG. 3A illustrates an embodiment of a method for generating an imagefrom a string of text.

FIG. 3B illustrates another embodiment of a method for generating animage from a string of text.

FIG. 3C illustrates a further embodiment of a method for generating animage from a string of text.

FIG. 3D illustrates yet another embodiment of a method for generating animage from a string of text.

FIG. 3E illustrates two further embodiments of a method for generatingan image from a string of text.

FIG. 4 illustrates a sample of code useful in execution of Blocks202A-202C.

FIG. 5 illustrates a sample of code useful in execution of Blocks202A-202C, 204, 206A, 206B, 600, 610, and 620.

FIGS. 6-8 illustrate samples of code useful in execution of Block 208.

FIG. 9 illustrates another embodiment of a method for generating animage from a string of text.

FIG. 10 illustrates a method for converting a decimal number to a base64 number.

FIG. 11 illustrates a sample of code useful in execution of Block 420.

FIG. 12 illustrates a further embodiment of a method for generating animage from a string of text.

FIG. 13 illustrates yet another embodiment of a method for generating animage from a string of text.

The foregoing and other features and advantages of the invention areapparent from the following detailed description of exemplaryembodiments, read in conjunction with the accompanying drawings, whereinlike structural or functional elements may be designated by likereference numerals.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A method for generating an image, for example, a machine readable image,from a string of text characters stored on a machine readable storagedevice is disclosed herein. The method does not utilize special fonts orimage libraries. When executed on a database server, the method executesall steps of the method within the database server. Database servers arecurrently used and known in the art, including by way of example and notlimitation, Database 11g sold by Oracle® Corporation of Redwood Shores,Calif., and Microsoft® SQL SERVER® 2008 sold by Microsoft® Corporationof Redmond, Wash. The method disclosed herein can be executeduniversally on any database server, though associated computer code mayvary somewhat for different database servers. When utilized to generatea machine readable barcode, the method can generate a barcode using anytype of encoding scheme as known in the art. The method is described interms of embodiments of combinations of functional Blocks that may eachexecute a task or series of tasks via a process or series of processesrunning on the database server.

Text characters are typically represented, mapped, or encoded as numbersthat a machine can manipulate using some form of ASCII encoding as knownin the art. There are encodings that are applicable to Latin text,Cyrillic text, Arabic text, Chinese text, etc. The type of encoding thatis applied to a particular character set may be selected based on thenumber of characters present in the character set. For example, in oneform of ASCII encoding, there are 128 possible characters, which areeach encoded using 7 bits (2⁷=128). Other forms of ASCII as known in theart utilize 8 bits and comprise 256, or 2⁸ possible characters. In suchan 8-bit encoding scheme each text character is encoded as one byte ofinformation represented by an 8-digit binary number.

FIG. 1 illustrates a step in a prior art method for generating a machinereadable image, in this example a barcode, from a string 50 of textcharacters 52 in a storage location 54 within a database server 56. Thetop line 58 of the string 50, “DNA FILE #8,343,621” may represent, forexample, an identifier for a particular batch of DNA or a series oftests run thereon. The bottom line 60, “!$^@˜#!%@” represents what abarcode for the top line 58 looks like in a special barcode font. In theprior art, when a workstation reads the special barcode font, theworkstation can convert the font into a barcode for printing. However,such methodology is problematic for several reasons, as discussed in theBackground section.

Referring to FIG. 2, the top line 58 of the storage location 54 ispresented as it would appear in the database server 56, utilizing aninventive method for generating a machine readable image, wherein themethod does not utilize special fonts or image libraries. In thismethod, the bottom line 60 representing the barcode in a special font isunnecessary and is left blank, thus eliminating wasted memory spacewithin the database server 56.

Referring to FIG. 3A, in one embodiment of a method 100 for generatingan image 102 from a string 104 of text characters 106, Block 200A readsthe string 104 of text characters 106 one text character 106 at a timefrom a storage location on a machine readable storage device 108, forexample, at the storage location 50 of a database server 56, asdiscussed with regard to FIGS. 1 and 2. The string 104 could have beeninput into the database server 56 manually via a keyboard, orelectronically via a process running on another database server orwithin the database server 56.

Referring again to FIG. 3A, Block 202A maps each text character 106 ofthe string 104 to a pattern 110 (P1, P2, . . . ) of multiple-valued textcharacters 112. Each pattern 110 is unique to a text character 106 for agiven image symbology. The number of multiple-valued text characters 112and the multiple of the multiple-values used in the symbology containedwithin each pattern 110 may be selected for the symbology. For example,in one symbology, the text character D may be mapped to a pattern 110having 11 binary-valued text characters 112 such as ABBAABBABAA. Inanother symbology, the text character D may be mapped to a pattern ofseven 4-valued text characters 112 such as ASDFDSA. Various symbologiescommonly used for rendering barcodes include, by way of example and notlimitation, Code 39, Code 128, EAN8, ITF-14, among others.

As noted, the actual multiple-valued text characters 112 used increating the pattern 110, in the example above are binary-valued textcharacters, A and B. The actual text characters used are arbitrary andany two distinct text characters 106 may be used. The same follows formultiple-valued text characters 112 having a value for the multiplegreater than two. For example, in creating a pattern 110 including8-valued text characters 112, any eight arbitrarily chosen distinct textcharacters 106 maybe used. The actual multiple-valued text characters112, though arbitrary, may represent a pattern recognizable to a humanuser. For example, in another example, the above noted pattern could bemapped as BSSBBSSBSBB, in which B represents a bar and S represents aspace for the rendering of a barcode.

The pattern mapping executed by the Block 202A may be accomplishedbefore or after execution of the Block 200A. For example, in anotherembodiment of a method 120 for generating an image 102 from a string 104of text characters 106, Block 202B maps all text characters 106 of acharacter set, for example, the alphabet, to unique patterns 110 beforeexecution of the Block 200A, as illustrated in FIG. 3B. The characterset for the alphabet includes 26 capital letters and 26 lower caseletters for a total of 52 characters. Thus, in this embodiment, theBlock 202B uniquely pattern maps each of the 52 characters to a patternof multiple-valued text characters 112 and stores the mapping in a firstmemory location. Subsequently, the Block 200A reads each text character106 into a second memory location. Block 203A applies the mappingproduced by the Block 202B to the text character 106 and retrieves theunique pattern 110 corresponding to the text character 106. In anotherembodiment 130, referring to FIG. 3C, the Block 200B reads the entirestring 104 into memory and Block 203B applies the mapping produced bythe Block 202B to the string 104 to produce a composite pattern 114, asdescribed further hereinbelow.

In another embodiment 140, the Block 200B reads the entire string 104into memory before any mapping is executed, as illustrated in FIG. 3D.In this embodiment, Block 202C executes the mapping and inputs thestring 104 into the mapping to produce the composite pattern 114 asdescribed further hereinbelow. Each of the Blocks 200A, 200B, 202A,202B, and 202C may be a process or a portion of a process running on thedatabase server 56.

An example of sample code useful in the execution of the Blocks202A-202C is illustrated in FIG. 4. The code in FIG. 4 and all examplesof code presented herein are suitable for use on the Oracle® Database11g database server. Code suitable for use on other database servers mayvary. Referring to FIG. 4, a first function “GetCode128Digit(C Char)”outputs a unique decimal number for each text character 106 input. Asecond function “GetBarSpacesFromDigit(Idx number)” outputs the pattern110 for each number corresponding to a text character 106 input. Thesample code in FIG. 4 is one way to execute the Blocks 202A-202C,provided by way of example and not limitation.

Referring to FIGS. 3A and 3B, in the embodiments 100 and 120,respectively, Block 204 joins the patterns 110 to produce a compositepattern 114 comprising the multiple-valued text characters 112. In theembodiment 130, referred to hereinabove with regard to FIG. 3C, theBlock 203B produces a composite pattern 114 by application of themapping of the Block 200B without the joining step executed by the Block204. Similarly, in the embodiment 140, referred to hereinabove withregard to FIG. 3D, the Block 202C maps the entire string 104 to producethe composite pattern 114 without the joining step executed by the Block204. An example of sample code for the execution of the Block 202C inthe embodiments 130 and 140 is illustrated in FIG. 5 by way of exampleand not limitation.

Referring to FIG. 5, beginning with the line marked as 250, the codeassigns a start pattern 110 to the composite pattern 114. Next, in thisexample, within a loop that executes for each text character 106 in thestring 104, the code calls each of the functions described with regardto FIG. 4 to select a pattern 110 and append the pattern 110 onto aright side of the composite pattern 114. Each of the Blocks 203A, 203B,and 204 may be a process or a portion of a process running on thedatabase server 56.

In other embodiments, each subsequently amended pattern 110 may beamended onto a left side of the composite pattern 114. The side of thecomposite pattern 114 to which subsequent patterns are appended isarbitrary and may be selected by the practitioner of the method 100;however, the composite patterns 114 that are appended on the left sidewill produce a different image 102 than the composite patterns 114 thatare appended on the right side.

Next, an end pattern is appended onto the right side of the compositepattern 114. A checksum is also computed and appended onto the compositepattern 114; however, the checksum is optional and is describedhereinbelow with regard to another embodiment.

Referring to FIGS. 3A-3D, based on the value of each multiple-valuedtext character 112, in one embodiment, Block 206A assigns a value ofeach of the multiple-valued text characters 112 to at least one bit 116of a plurality of bits 118 as a step in rendering the image 102. Inanother embodiment, the value of each of the multiple-valued textcharacters 112 may be encoded using a different encoding scheme from theencoding scheme used to read the string 104 of text characters 106 readfrom the storage location 50 by the Block 200A. However, in thisembodiment, the value of each of the multiple-valued text characters 112is encoded in the same encoding scheme, for example, an ASCII 8-bitscheme, as the encoding scheme used to read the string 104 of textcharacters 106 read from the storage location 50 by the Block 200A.Therefore, the value of each of the multiple-valued text characters 112may be encoded as eight bits or one byte of information represented byan 8-digit binary number. The binary-valued text characters 112 may beencoded as eight digits of zeros or eight digits of ones. In otherembodiments, other encoding schemes may be used in rendering the image,for example, individual bits may be used to create a pixel levelencoding; however, in the rendering of barcodes, the larger size allowsfor sharper rendering of the image.

An example of sample code for the encoding of the binary-valued textcharacters 112 as an 8-digit binary number is illustrated in FIG. 6 byway of example and not limitation. Referring to FIG. 6, the codeexecutes a loop that executes for each binary-valued text character 112in the composite pattern 114 (represented by the variable sBarcode).Each time through the loop, the code appends either a char(255), whichis 11111111 in binary, or a char(0), which is 00000000 in binary, to avariable called Result. The Block 206A in FIG. 3A is illustrated asassigning a value of each of the binary-valued text characters 112 to asingle bit, either 0 or 1, because as will be described hereinbelow, inthis embodiment, Block 208 utilizes only 1 bit of information from eachbyte, the other seven bits in each byte not being used. The Block 206Amay be a process or a portion of a process running on the databaseserver 56.

Because there are two values for the binary-valued text characters 112,each bit 116 so assigned can have one of two values, a zero or a one. Inthis embodiment, one of the binary-valued text characters 112 isassigned to a zero value bit 116 and the other of the binary-valued textcharacters is assigned to a bit 116 having a value of one; however, theselection of which binary-valued text character 112 is assigned to whichvalue for each assigned bit 116 is entirely arbitrary and may beselected to match the encoding scheme selected to uniquely map the textcharacters 106 to the patterns 110 of binary-valued text characters 112executed by the Blocks 202A-202C, or for other reasons. For example, itis known in the art that in Windows® operating systems, a bit 116 havinga value of 1 represents a white pixel on a display and a zero valued bit116 represents a black pixel on the display. Alternatively, in Apple®operating systems, the reverse is true, namely that a bit 116 having avalue of 1 represents a black pixel and a zero valued bit 116 representsa white pixel.

Thus, the binary-valued text characters 112 in this example serve thepurpose of providing a sequenced pattern of elements that are expressedas having one of two possible states. The value of each binary-valuedtext character 112 can be assigned to a single data bit 116 having twostates representing, for example, a pixel on or off, as notedhereinabove. It is contemplated that the use of multiple-valued textcharacters 112 having a multiple greater than 2 can be used in renderingimages 102 containing pixels that display more information than justbeing on or off. For example, a 4-multiple text character 112 can beassigned to two bits of data that can represent 4 distinct colors or 4distinct symbols for display by a single pixel or group of pixels.Similarly, an 8-multiple text character 112 can be assigned to threebits of data that can represent 8 distinct colors or 8 distinct symbolsfor display by a single pixel or group of pixels, a 16-multiple textcharacter 112 can be assigned to four bits of data that can represent 16distinct colors or 16 distinct symbols for display by a single pixel orgroup of pixels, a 32-multiple text character 112 can be assigned tofive bits of data that can represent 32 distinct colors or 32 distinctsymbols for display by a single pixel or group of pixels, and a64-multiple text character 112 can be assigned to six bits of data thatcan represent 64 distinct colors or 64 distinct symbols for display by asingle pixel or group of pixels.

In another embodiment 150, Block 206B executes to assign a value of eachof the multiple-valued text characters 112 to one bit 116 of a pluralityof bits 118 before execution of the Block 200A, as illustrated by theleft side of the flowchart in FIG. 3E. A further embodiment 160 includesthe Block 206B executing before the Block 200B, as illustrated by theright side of the flowchart in FIG. 3E. Following the left side of theflowchart, the Blocks 203A and 204 in the embodiment 150 execute asdescribed hereinabove with regard to FIG. 3B. Following the right sideof the flowchart the Block 203B in the embodiment 160 executes asdescribed hereinabove with regard to FIG. 3C. In both the embodiments150 and 160, Block 207 executes to apply the assignment of valuesexecuted by the Block 206B for each of the multiple-valued textcharacters 112. The Blocks 206B and 207 may be a process or a portion ofa process running on the database server 56.

In all of the embodiments thus far disclosed, 100, 120, 130, 140, 150,and 160, Block 208 executes a step in rendering the image 102 bydisplaying the plurality of bits 118 that comprise the image 102. TheBlock 208 may be a process or a portion of a process running on thedatabase server 56. The plurality of bits 118 is displayed as an image102, for example, a machine readable bitmap image 102 havingpredetermined height and width of the bits 118, which may be set in thebitmap header as known in the art. The image 102 can represent, by wayof example and not limitation, an image of a person, a place, a thing, alogo, a one-dimensional barcode, a two-dimensional barcode, or any othergraphical image as known in the art.

An example of sample code for the execution of the Block 208 isillustrated in FIGS. 6-8 by way of example and not limitation. Referringto FIG. 7, the code generates a bitmap header as known in the art. Thevariable Result, described hereinabove with regard to FIG. 6, isappended onto a right side of the bitmap header. Referring to FIG. 8, a“VIEW” function is used to display the bitmap image 102 generatedthrough the steps illustrated in FIGS. 6 and 7.

The “VIEW” function provides a “virtual table” created from underlyingtext within a column of the database server 56. In FIG. 8, input to the“VIEW” function is “Worksheet ID,” which represents the strings 104 oftext characters 106 in memory locations within the database server 56.Output of the “VIEW” function is “Bar Code,” which represents the bitmapimage 102 constructed by the code in FIGS. 6 and 7, where the first bitof each byte is used and the other seven bits are discarded.

The bitmap image 102 may be stretched horizontally or vertically fordisplay and subsequent printing. Such stretching is common for arendering of a bitmap. For example, a rendering device may be preset tostretch the bitmap image 102 to make it 5 times wider and 20 timestaller. Such asymmetrical expansion may be applied to a horizontalsingle-line bitmap image comprising a horizontally arranged series ofdark and light spaces. For example, in such an asymmetrical expansion,the horizontally arranged series of dark and light spaces may bestretched vertically into a horizontally arranged series of dark andlight vertical bars, and stretched horizontally for improved clarity ofhorizontal separation between the dark and light vertical bars. In oneembodiment, such a stretched image can be used to represent a bar code,for example, as illustrated in FIGS. 3A-3E, 9, 12, and 13.

Variations may be applied to the order of the steps executed by theBlocks 200A-208, for example, the Block 206A may be executed before theBlock 204 in the embodiments 100 and 120, discussed hereinabove withregard to FIGS. 3A and 3B, respectively. Similarly, the Block 207 may beexecuted before the Block 204 in the embodiment 150, describedhereinabove with regard to FIG. 3E. In addition, referring to theembodiments 150, 160 in FIG. 3E, the Blocks 202B, 203A, and 203B may beeliminated and the Blocks 202A and 202C may be added executing after theBlocks 200A and 200B, respectively.

Variations may also be applied to the steps executed by the Blocks200-208 described hereinabove, resulting in many variations in the typeand appearance of the image 102. Further, other embodiments of themethod 100 described hereinabove may include further steps. For example,another embodiment of a method 300 for generating an image 302 from astring 304 of text characters 306 includes all of the steps describedhereinabove for any of the methods 100, 120, 130, 140, 150, and 160described with regard to FIGS. 3A-3E. Referring to FIG. 9, the method300 further includes a compression step, represented by the addition ofa Block 400 prior to the Block 202A of the method 100. In otherembodiments, the Block 400 may be added before the Block 203A in FIG.3B, before the Block 203B in FIG. 3C, before the Block 202C in FIG. 3D,and before either of the Blocks 203A and 203B in FIG. 3E.

Block 400 executes a compression step that affords the compression oflarge decimal numbers having many digits to, for example, a base 64 (orany other base greater than 10) number having fewer digits. Base 64 isconvenient because a typical alphanumeric character set includes 26capital letters, 26 lower case letters and ten decimal digits for atotal of 62 characters. Addition of, for example, a dash and a spacecreates a convenient character set having 64 distinct characters. Such acharacter set can form the basis for conversion of a decimal number to abase 64 number wherein each digit is one of the 64 distinct characters.

As an example of the compression of a large decimal number 314 to a base64 number 316 for use in any of the above described methods, considerthe string 304 of text characters 306 including the decimal number 314having a value of 678,432,123, as illustrated in FIG. 10. Withoutcompression of the decimal number 314, the string 304 includes 19characters (including spaces and the # symbol). During execution of themethod 100, for example, the Block 202A would therefore map 19 textcharacters 106 to 19 patterns 110 (P1, P2, . . . ) of binary-valued textcharacters 112. Execution of the Block 400 produces a second string 320that has a fixed length for a wide range of decimal numbers, which canlower the number of digits mapped by the Block 202A, and may also beuseful for other reasons as known in the art.

Referring to FIG. 10, the Block 400 has been expanded into Blocks 410,420, and 430. Block 410 separates the string 304 into a string ofletters 318 and the decimal number 314. In this example, the string ofletters 318 is “DNA_FILE_#” and the decimal number 314 is “678432123.”Block 420 converts the decimal number 314 into a base 64 number 316using any convenient method for converting decimal numbers to base 64numbers as known in the art.

In this example, the decimal value 678432123 converts to a base 64number having the base 64 value cR0pv, which has 5 digits, thus savingexecution of the Block 202A on four text characters 106. Block 430combines the string of letters 318 with the base 64 number 316, having avalue of cR0pv to produce the second string 320 of text characters 306represented as “DNA_FILE_#cR0pv.”

An example of sample code for the execution of the Block 420 isillustrated in FIG. 11 by way of example and not limitation. Referringto FIG. 11, the character set Base64Set, having 64 distinct charactersused for conversion to a base 64 number is presented in the second lineof the code. Beginning at the line “begin,” the code executes a “BitAnd”function on the decimal number 314 having the value 678432123 and asecond decimal number having a value of 63, corresponding to a base 64conversion. The result of the “BitAnd” function is then assigned one ofthe characters of the Base64Set based on decimal value of the result. ABase64Set character is thus assigned for each base 64 digit, where eachsubsequent digit is appended onto a left side of each previous digit toproduce the base 64 number 316.

In another embodiment, a method 500 for generating the image 102 fromthe string 104 of text 106 includes all of the steps describedhereinabove for any of the methods 100, 120, 130, 140, 150, and 160described with regard to FIGS. 3A-3E. The method 500 further includesthe computation of a checksum 508, as illustrated in FIG. 12. In any ofthe above methods, the checksum 508 is computed by Block 600 afterexecution of the either of the Blocks 200A or 200B and before executionof the Blocks 206A or 207 (Block 630 in FIG. 12), for example,immediately following execution of the Block 200A, as illustrated inFIG. 12.

There are many methods of computing a checksum as known in the art.Accordingly, the formula for the checksum 508 has been genericallylabeled f(c) in FIG. 12. One sample formula for computing the checksum508, presented by way of example and not limitation, is a summation overindex i of i times the value of the i^(th) text character. In the caseof the character string “DNA_FILE_#cR0pv,” and the character set having64 distinct characters described above with regard to FIG. 10, thisformula expands as 1*14+2*24+3*11 . . . , etc. Regardless of theparticular formula used, ultimately the computed checksum 508 may beconverted to a base 64 number (or other base as desired) and/or runthrough a modulus as desired to produce a number having a single digit.

Referring to FIG. 12, block 610 executes following execution of theBlock 600 and before execution of the Block 630, for example,immediately following execution of the Block 204, as illustrated. TheBlock 610 maps the checksum 508 to a second pattern 510 (CP₁) ofmultiple-valued text characters 112 following the same methodologydescribed hereinabove with regard to the execution of the Block 202A forthe method 100.

Following execution of the Block 610, Block 620 executes prior to theBlock 630 to append the second pattern 510 to the composite pattern 114to produce an expanded composite pattern 514 including the checksum 508.Following execution of the Block 620, Block 630 assigns a value of eachof the multiple-valued text characters 112 of the expanded compositepattern 514 to at least one bit 116 of a plurality of bits 118 followingthe same methodology described hereinabove with regard to the executionof the Block 206A for the method 100.

The checksum 508 for a machine readable image 102, for example, abarcode is typically printed onto an item along with the image 102. Uponscanning of the item, a second checksum 510 is computed, for example,via software and/or hardware within the scanner for the scanned imageand compared to the printed checksum 508 to verify that the image 102has been correctly printed and correctly scanned. An example of samplecode for the execution of the Blocks 600, 610, and 620 is illustrated inFIG. 5 by way of example and not limitation. Referring to FIG. 5, thechecksum 508 is computed by use of the above noted sample formula.

Another method 700 for generating the machine readable image 102 fromthe string 104 of text 106 includes all of the steps describedhereinabove for the methods 100, 120, 130, 140, 150, 160, and 500 withregard to FIGS. 3A-3E, and 12. The method 700 further includes executionof the Block 400, described hereinabove for the method 300 with regardto FIG. 9, for compressing the string 104 of text characters 106 toproduce the second string 320 of text characters 106, as illustrated inFIG. 13.

An improved method for generating an image from a string of textcharacters is presented. The method does not utilize special fonts orimage libraries and may be entirely executed within a database server;the method executes all steps of the method within the database server,and may be executed on any database server.

A computer assisted method for generating an image from a string of textcharacters of a set of text characters, comprising the steps of:creating a pattern mapping of each of the set of text characters to apattern of multiple valued text characters; reading the string of textcharacters from a machine readable storage device; applying the patternmapping to string of text characters to produce a composite pattern ofmultiple-valued text characters; and rendering the image.

A computer assisted method for generating an image from a string of textcharacters, including the steps of: assigning values of multiple-valuedtext characters to bits; reading the string of text characters from amachine readable storage device; pattern mapping each text character toa pattern of multiple-valued text characters; creating a pattern mappingof each of the set of text characters to a pattern of multiple valuedtext characters; and rendering the image. The method further comprisesthe steps of: applying the pattern mapping to the string of textcharacters to produce a composite pattern of multiple-valued textcharacters; and rendering the image. The method value of the textcharacters is a binary value assigning a value of zero or one. The valueassigned is arbitrary or matches the code selected to select the patternof binary valued text characters.

It will be appreciated by those skilled in the art that changes could bemade to the embodiments described hereinabove without departing from thebroad concepts disclosed therein. It is understood, therefore, that thisdisclosure is not limited to the particular embodiments disclosed, butit is intended to cover modifications that may include a combination offeatures illustrated in one or more embodiments with featuresillustrated in any other embodiments. Various modifications, equivalentprocesses, as well as numerous structures to which the presentdisclosure may be applicable will be readily apparent to those of skillin the art to which the present disclosure is directed upon review ofthe present specification. Accordingly, this description is to beconstrued as illustrative only and is presented for the purpose ofenabling those skilled in the art to make and use the method forgenerating an image described herein and to teach the best mode ofcarrying out the same.

What is claimed:
 1. A computer assisted method for generating an imagefrom a string of text characters, comprising the steps of: reading thestring of text characters from a machine readable storage device;pattern mapping each text character to a pattern of multiple-valued textcharacters; and rendering the image.
 2. The method of claim 1, whereinthe reading step further includes: reading the string of text charactersone text character at a time from a storage location on a machinereadable storage device.
 3. The method of claim 1, wherein the mappingstep further includes: storing the mapping in a first memory location;and reading each text character into a second memory location.
 4. Themethod of claim 3, wherein the mapping step further includes: applyingthe mapping produced to the text character; and retrieving the uniquepattern corresponding to the text character.
 5. The method of claim 1,further including the step of printing the image.
 6. The method of claim5, wherein the image comprises a barcode.
 7. The method of claim 2,wherein a value of at least one byte is assigned to each of themultiple-valued text characters.
 8. The method of claim 1, wherein eachpattern is unique to a text character for a given image symbology andwherein the number of multiple-valued text characters and themultiple-values used in the symbology contained within each pattern maybe selected for the symbology.
 9. The method of claim 1, wherein thetext-characters and multiple-valued characters are arbitrary and any twodistinct text characters may be used.
 10. A computer assisted method forgenerating an image from a string of text characters on a database,comprising the steps of: executing a first process within the databaseserver for reading the string of text characters from a storage locationwithin the database server; and executing a second process on thedatabase server for pattern mapping the string of text characters to apattern of multiple valued text characters.
 11. The method of claim 10,further including the step of: executing a third process on the databaseserver for rendering the image.
 12. The method of claim 11, wherein thethird process further includes displaying the plurality of bits thatcomprise the image.
 13. The method of claim 12, wherein the image may bestretched horizontally or vertically for display and subsequentprinting.
 14. A computer assisted method for generating an image from astring of text characters, comprising the steps of: reading the stringof text characters from a machine readable storage device; patternmapping each text character to a pattern of multiple-valued textcharacters; appending the patterns to produce a composite patterncomprising the valued text characters.
 15. The method of claim 14,further including the step of compressing the string of text charactersto produce a second string of text characters, wherein the compressingstep occurs after the step of reading the first named string.
 16. Themethod of claim 14, wherein the step of compressing the first namedstring of text characters further comprises the steps of: separating thefirst named string of text characters into a string of letters and abase number greater than 10; converting the base number into a numberhaving a greater base number; and combining the string of letters andthe base number to produce the second string of text characters.
 17. Themethod of claim 16, further including the step of: a loop that executesfor text character in the string of text characters; the codes requestseach of the functions described to select a pattern; and appends thepattern onto a right side of the composite pattern.
 18. The method ofclaim 17, wherein the pattern is appended to the left side of thecomposite pattern.
 19. The method of claim 18, further including a stepof: appending an end pattern onto the right side of the compositepattern.